查看原文
其他

我决定辞掉工作,全职开发我的操作系统!

IT服务圈儿 2023-02-06

The following article is from 码农翻身 Author 刘欣

来源丨经授权转自 码农翻身(ID:coderising)

作者 | 码农翻身刘欣

文末送书!!!


今天读到了一个瑞典程序员的故事, 他在短短半年的业余时间内、一个人单枪匹马构建了普通程序员几年、甚至十几年的业余时间才能搞定的东西:


操作系统内核、TCP/IP协议、GUI框架、进程管理器、文件浏览器、文本编辑器、界面编辑器、贪吃蛇游戏、绘图工具...... 


这家伙就是传说中的10倍速,甚至100倍速程序员


再加上后续的浏览器, JS引擎、CSS、C++ IDE、HTTP服务器、电子表格...... 虽然功能还不完善,但是项目展示出的范围宽广得可怕!  


这不但要重写操作系统,还要重写上面的所有软件! 好家伙!



他为什么要这么干呢?


下面以第一人称,讲述一下他的故事。


2018年10月,我刚刚在瑞典的一家戒毒所完成了为期3个月的康复计划, 我失业了,和家人在一起,无事可做。 


日子太漫长了,我得找点儿事儿做。


之前我在Apple 和诺基亚工作,主要做基于WebKit的Web浏览器,  但是我对底层的东西特别感兴趣,我写过ELF的解析器,Ext2 文件系统浏览器,有着事件循环的GUI 框架......


慢慢地,一个操作系统居然开始成形了,我把它取名为SerenityOS (宁静操作系统)。 


你可能要问了,为什么要搞个新的操作系统呢? 


答案很简单,我想构建一个我日常使用的梦想的操作系统:结合上世纪90年代的GUI和Unix严肃的命令行。


在Apple工作的时候,我很享受苹果软件那种都在一个“屋檐”下的感觉,不但所有的软件可以超级紧密地集成,并且可以让程序员尽情地去“折腾”。 


我决定把这种感觉带给开源世界:我的SerenityOS不再是由一个个软件包“拼凑”起来的,我要重新构建所有的东西:从内核到浏览器,以及中间层的所有东西!


开工吧!



第一年, 从零到HTML!



2018-11-08: 在虚拟机中运行



2019-1-09 ,开始对Widget(窗口,按钮,CheckBox等)开始测试




2019-01-21:  创建多个"guitest"进程



2019-02-03:   增加字体编辑器、时钟



2019-02-11:  实现菜单!早期的文件管理器



2019-02-28: 早期的进程管理器



2019-03-15:  TCP协议栈搞定了,实现一个IRC玩玩



2019-04-11: 创建VisualBuilder,  创意来源于Visual Basic



2019-04-20:  贪吃蛇游戏



2019-04-22: GCC基本上可以工作了



2019-06-14:  简单的绘图程序



2019-09-09: 女士们先生们,我们有 DOOM了!



2019-09-29: 在LibHTML中实现基本的CSS



2019-10-10  第一个浏览器实现了!




第二年




2019-11-04: 移植Quake




2019-11-30:  整一个 C++ IDE吧:  HackStudio IDE




2019-12-30: SerenityOS 在 36c3 上被“黑”,我开始发疯似地学习安全知识来保护它



2020-02-29:  一个简单的HTTP服务器(为了庆祝我的生日)



2020-03-31: JavaScript 支持初见雏形



2020-05-30: 支持TLS(和HTTPS)



2020-06-22: JPEG解码器


(想知道图片中这位美女是谁的,可以参考这篇文章《计算机女神,互联网第一夫人!》)


2020-06-30: 努力通过Web浏览器的CSS兼容性测试(ACID2)



2020-08-30: 更多的桌面游戏 (Chess and 2048)



2020-09-22: C++ IDE HackStudio 开始支持Git



2020-09-29:  简单版Excel !



随着时间的推移,越来越多的人发现了我这个小项目(和我在GitHub上的视频),也引起了不少人的共鸣,比如:


我很喜欢你这个项目,有着Unix风格的内核,混搭的GUI,一个Mac OS的菜单栏, Windows GUI界面,一个NextSTEP风格的Laucher , 你把其他系统中你最喜欢的部分给拿了过来。 


越来越多的人参与进来, 宁静操作系统,已经从一个不起眼的小项目,发展成为一个活跃的开源社区,全世界有几百个贡献者,在GitHub上收获了11.9K的star 和 1.1k 的fork 。 


2021年5月28号,我辞职了,全心全意地投入到这个操作系统的开发中。 


这主要得益于大家慷慨的支持,我现在每月收到来自Patreon, GitHub 和PayPal的2000美元的捐赠,YouTube也有少量收入(每月150美元),再加上宁静OS的商品销售(每月100美元)。 


这虽然不足以完全维持我和我的家庭的开销,但也差不到哪儿去。 


正如你看到的,我并不想通过这个操作系统发财, 我只想成为一个健康的、神智健全的人, 碰巧我的“自我治疗”项目吸引了这么多人的注意和支持。 


我是Andreas Kling, 一个瑞典程序员。






故事看完了,不知道各位小伙伴有什么感受? 


说实话,我看了以后首先的感觉就是特别震惊!


文章开头已经提过,这家伙在短短的半年时间内、一个人单枪匹马构建了普通程序员几年、甚至十几年的业余时间才能搞定的东西, 这家伙就是传说中的10倍速,甚至100倍速程序员


其次,Andreas真是敢想敢干,从内核到应用,都要重新搞一遍。Linux发展这么多年,大家都觉得一统天下了,都去研究Linux就好了,有个别爱好者也就是写个玩具操作系统,但是Andreas却有自己独特的想法,走出了一条独特的道路,并且培育了一个良好的开源社区。


第三就是兴趣真是最好的老师,他完全是凭借个人兴趣把这个系统开发出来的, 在起步阶段,所有的代码都是一个人写的。 一般人写操作系统,估计也就开个头,能够启动,抄几个例子也就算了,更不会搞这么多复杂的GUI框架和程序了。


他在油管上发了700多个视频!让人叹为观止,把自己的开发过程,对操作系统的理解都讲了出来。 



不过, 这几年他衰老速度也肉眼可见




第四,为什么又是北欧? 


Linux是芬兰人Linus写的

MySQL是瑞典人Monty开发的。

Minecraft 是瑞典人Markus写的

......


SerenityOS 虽然没法和上述产品相比,但也是一个非常有影响力的项目了 。 


为什么这些产品没有出现在中国? 


如果说Linux, MySQL, Minecraft开发的比较早,那时候中国程序员还不多,水平可能还不高, 但是现在已经是2020年,SerenityOS涉及到的技术早已普及,为什么没人去做呢? 


我想最有可能的原因是:中国有很多像Andreas这样的天才程序员,只不过他整天被需求压得喘不过气来,业余时间被996榨干,回到家中,累得根本没有时间和精力去鼓捣自己的兴趣和爱好了......


end


关注公众号👇👇👇
留言的朋友均有机会获得书籍呦~
今日书单 | 包邮送

推荐理由:本书根据各种企业级真实场景总结,提出合理的设计思路和解决方案,从需求、问题、解决方案、原理、设计方法、落地方案多个角度,给出架构设计方法。

推荐理由:电子元器件是电路设计的基础,而电阻、电容和电感又是电路设计中使用非常普遍的电子元器件。本书从物理层面来阐述这三类元器件的实现原理,帮助读者更好地理解这三类电子元器件的电气特性及其在电路中的应用。推荐理由:知识全面、系统。本书在介绍了R语言的基础知识后,从数据获取和导出、数据清理和操作、数据分析和可视化方面分别进行了探讨,内容由浅入深、循序渐进。 


活动规则:我们将从关注我们的精选留言中随机抽取 8名 伙伴赠书,中奖者可在上方书单中任选一本图书,我们包邮赠送。书籍有限,中奖后先选先得。留言要求:
  • 内容与本文核心信息相关 & 想要的书籍名称

  • 每人仅限精选一条留言(用心留言更容易上墙)

  • 为了大家都有机会中奖,每个小伙伴每个星期只能中一次奖哦~


截止时间: 2022 年 04 月 18 日 16:00 整兑奖时间: 2022 年 04 月 20 日 16:00截止

每天 17:30 不见不散!


1、一个 Bug 让人类科技倒退几十年?

2、留学生不香了:大厂进不去,小厂嫌弃我

3、国产GPU为何“一夜杀到老黄城下”?

4、隔壁火狐都馋哭了!Chrome和Edge双双更新至100版本(附下载地址)

5、我终于用上了真5G!2022年的5G体验到底如何?

点分享

点点赞

点在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存